<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<button onclick="sendJson()">发送 JSON格式的 POST 请求</button>

<script>
    function sendJson(){
        // 这里是利用ajax生成并发送请求
        ajax({
            url: 'postParameterJson',
            method: 'POST',
            contentType: 'application/json; charset=utf-8',
            body: JSON.stringify({userId: 123, classId: 456}),
            callback: function(body, status) {
                console.log(body + status);
            }
        });
    }

         // 把之前封装的 ajax 函数拷贝过来     这个部分的函数似乎是通用的
    function ajax(args) {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            // 0: 请求未初始化
            // 1: 服务器连接已建立
            // 2: 请求已接收
            // 3: 请求处理中
            // 4: 请求已完成，且响应已就绪
        if (xhr.readyState == 4) {
            args.callback(xhr.responseText, xhr.status)
            }
        }

        xhr.open(args.method, args.url);
        if (args.contentType) {
            xhr.setRequestHeader('Content-type', args.contentType);
        }
        if (args.body) {
            xhr.send(args.body);
        } else {
            xhr.send();
        }
  }

</script>

